package ubadbtools.deadlockAnalyzer.grafo;

public class IteradorSucesores extends IteradorNodos {

	public IteradorSucesores(Grafo g, int v) {
		super(g);
		if (g.esdigrafo)
			if (g.existeNodo(v))
				ady = g.nodosarray[v].adys;
			else {
				System.out
						.print("Error (88) ConstruirAdyacentes, Sucesores o Antecesores de un nodo no existente.");
				// RunError(88);
			}
		else {

			System.out
					.print("Error (87) Los grafos simples no tienen Sucesores ni Antecesores.");
			// RunError(87);
		}
	}

	public boolean hayMas() {
		ListaAdy auxady;
		auxady = ady;

		while (!auxady.vacia() && (!auxady.primero.seDirigeA())) {
			auxady = auxady.proximo;
			return (!auxady.vacia());
		}
		return true;
	}

	public int obtenerNodo() {
		int aux = -1;

		while (!ady.vacia() && (!ady.primero.seDirigeA()))
			ady = ady.proximo;
		if (!ady.vacia()) {
			aux = ady.primero.nnodo;
			ady = ady.proximo;
		} else {
			System.out.print("Error (86) ObtenerNodo de un Iterador vacio.");
			// RunError(86);
		}
		return aux;
	}

}